Computer and network security vulnerabilities may exist in many forms. In this regard, protective strategies are continually developed to address the many computer and network security concerns. Vulnerabilities in software applications, namely web software applications, such as web browsers, plugins, extensions, and the like may provide attack opportunities for malicious actors. Specifically, web software applications being run on computers and computer networks must persistently be updated with patches (e.g., security fixes) and the like to close security loop holes and mitigate obvious opportunities for malicious attacks. However, even when patches are made available by a provider of the web software application to address vulnerabilities within web software applications, the users of the web software applications may not be aware of the patches or updates or otherwise, are failing to install the patches in a timely manner.
Organizations generally desire to protect their computers and networks by ensuring that their users are running up-to-date versions of web software applications. Additionally, these organizations typically seek to define policy to restrict access to corporate computers and/or corporate networks unless the web software applications are proven to be up-to-date with the latest versions of patches, application types, and the like to reduce the risk of exploitation of unfixed deficiencies in the applications.
Normally, software applications, such as web browsers would identify themselves to web application servers by sending a string called user-agent which specifies the type and the version number of the web application. Providing web browsers with legitimate type and version numbers would greatly simplify an organization's ability to identify whether the version of a web browser may be current and up-to-date. However, a web browser's user-agent may be malleable and subject to change, as most web browsers have built-in functionality to emulate other web browsers.
Additionally, there exists a tension between the needs of security and privacy and application identifiers, such as a version number, may be useful for security reasons, but also can be exploited by malicious actors if not maintained as private information. Thus, while version numbers may be used for good in security platforms that inform users and organizations on different methods for keeping software applications up-to-date, the version number of a software application may also be abused by malicious parties on the Internet for tracking users/devices (e.g., advertising), targeting the software with specific exploits, or simply changing the version number of a software application to fool policy systems of an organization into trusting that the software application is up-to-date. As a result, many providers of software applications obscure or otherwise, remove version numbers from web-accessible locations.
Thus, there is a need in the computer security field for new and useful methods for identifying software applications beyond the web-accessible version string to mitigate or eliminate potential vulnerabilities in computers and computer networks.